Esprima (esprima.org, BSD license) is a high performance,
standard-compliant ECMAScript
parser written in ECMAScript (also popularly known as
JavaScript).
Esprima is created and maintained by Ariya Hidayat,
with the help of many contributors.
Esprima-FB is a fork of the Harmony branch of Esprima that implements JSX specification on top of ECMAScript syntax.
Features
- Full support for ECMAScript 5.1 (ECMA-262)
- Experimental support for ES6/Harmony (module, class, destructuring, ...)
- Full support for JSX syntax extensions.
- Sensible syntax tree format compatible with Mozilla
Parser AST
- Optional tracking of syntax node location (index-based and line-column)
- Heavily tested (> 600 unit tests with solid statement and branch coverage)
Versioning rules
In order to follow semver rules and keep reference to original Esprima versions at the same time, we left 3 digits of each version part to refer to upstream harmony branch. We then take the most significant digit.
Example: 4001.3001.0000-dev-harmony-fb aligns with 1.1.0-dev-harmony (aka 001.001.000-dev-harmony) in upstream, with our own changes on top.
Esprima-FB serves as a building block for JSX language tools and transpiler implementations (such as React or JSXDOM).
Esprima-FB runs on many popular web browsers, as well as other ECMAScript platforms such as
Rhino and Node.js.
For more information on original Esprima, check the web site esprima.org.